package com.itheima.SensitiveWord;

import java.util.ArrayList;
import java.util.List;
public class Main {
    public static void main(String[] args) {
        ACFilter acFilter = new ACFilter();
        List<String> sensitiveWordList = new ArrayList<>();
        sensitiveWordList.add("ACFilter");
        sensitiveWordList.add("科技");
        sensitiveWordList.add("坏词");
        sensitiveWordList.add("敏感词3");
        System.out.println("sensitiveWordList" + sensitiveWordList);

        acFilter.loadSensitiveWord(sensitiveWordList);  // 加载敏感词

        String testText = "近日，某科技团队成功研发出一套基于 AC 自动机算法的敏感词过滤系统，该系统在信息安全领域展现出强大的应用潜力。在当今数字化快速发展的时代，信息传播的速度和范围呈爆炸式增长，敏感词的管理和过滤成为维护网络环境健康、保障信息安全的重要环节。该团队研发的这套敏感词过滤系统，核心算法基于 AC 自动机，能够高效、准确地识别文本中的敏感词汇。" +
                "从技术实现来看，该系统由 ACFilter 类作为核心过滤组件，配合 ACTrie 类构建的字典树结构，通过预先加载敏感词列表，利用 initFailover 方法初始化失配指针，极大地提高了匹配效率。在实际测试中，对于包含大量文本的信息，系统能够迅速完成敏感词的识别和标记。例如，在一个包含数千字的测试文本中，系统在短时间内就准确找出了所有预设的敏感词，并清晰标记出其在文本中的位置" +
                "该系统不仅具备高效的过滤能力，还提供了灵活的接口。hasSensitiveWord 方法能够快速判断文本中是否包含敏感词，而 filter 方法则会详细标注出敏感词的位置，方便用户进一步处理。" +
                "这一成果的应用前景十分广泛，无论是社交平台、新闻媒体还是企业内部的信息管理系统，都可以借助该系统实现对敏感信息的有效管控，营造更加健康、安全的信息传播环境。未来，该团队还计划对系统进行持续优化，以适应不断变化的敏感词管理需求，为信息安全领域贡献更多力量。";
        String result = acFilter.filter(testText);  // 过滤敏感词
        System.out.println(result);

        boolean hasSensitiveWord = acFilter.hasSensitiveWord(testText);  // 判断文本中是否包含敏感词
        System.out.println("文本是否包含敏感词: " + hasSensitiveWord);
    }
}